#include <head.h>


int main(int argc, char const *argv[])
{
    int fd = open( "hello.txt" , O_CREAT | O_RDWR , 0666 );  // 读写锁
    int fd_T = open( "T.txt" , O_CREAT | O_RDWR , 0666 );    // 进程通讯用  --> 管道


    char buff[32] = "B";        // 写入的内容

    int i = 10;
    int T_num = 0;
    
    // 从文件中 读取 文件坐标 另一个进程写入
    

    // 1、上锁
    flock(fd , LOCK_EX);
    // 2、通讯 获取 位置信息
    read( fd_T , &T_num , sizeof(int) );
    // 3、移动光标
    lseek( fd , T_num , SEEK_SET);
    // 4、开始写入
    while (i--)
    {
        sleep(1);
        write( fd , buff , 1 );
    }
    // 5、获取光标
    T_num = lseek( fd , 0 , SEEK_CUR); // 获取当前文件指针坐标
    // 6、将光标位置 写入到通讯文件中
    lseek(fd_T , 0 , SEEK_SET);         // 移动到开始 覆盖写数据
    write(fd_T , &T_num , sizeof(int)); // 写入数据
    // 解锁
    flock(fd , LOCK_UN);

    close(fd);
    close(fd_T);
    return 0;
}


